{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# CS 237 Spring 2021, HW 02 \n", "\n", "#### Due date: Thursday February 11th at Midnight (1 minute after 11:59pm on 2/11) via Gradescope (6 hour grace period)\n", "\n", " Late policy: You may submit the homework up to 24 hours late for a 10% penalty. Hence, the late deadline is Friday 2/2 at Midnight (with the same 6 hour grace period). \n", "\n", "#### General Instructions\n", "\n", "Please complete this notebook by filling in solutions where indicated. Be sure to \"Restart and Run All\" from the Kernel menu before submitting to Gradescope. \n", "\n", "There are 8 analytical problems and 4 programming problems. An introductory video will be posted on YT Friday afternoon for\n", "the analytical problems, and the programming problems will be covered Friday in lab. \n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Here are some imports which will be used in code that we write for CS 237\n", "\n", "# IMPORTANT: DO NOT MAKE ANY OTHER IMPORTS WITHOUT DISCUSSING WITH PROFESSOR SNYDER\n", "\n", "# Imports used for the code in CS 237\n", "\n", "import numpy as np # arrays and functions which operate on arrays, plus math functions\n", "import matplotlib.pyplot as plt # normal plotting \n", "import math # You may use the math library if you really want, but\n", " # I recommend you use the numpy library for all mathematical operations.\n", " # Examples of use are in the notebook NumpyTutorial.ipynb on the class web site. \n", "\n", "\n", "from collections import Counter # Essential for creating distributions from experiments\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analytical Problems\n", "\n", "The first 4 problems are from the textbook End of Chapter Problems for Chapter 1 here. If only certain parts of a problem are specified, then (naturally) just do those parts; if no such restriction is specified, you must do all parts of the problem. \n", "\n", "\n", "For Problems 5, 6, and 8, **Analyze** means to specify \n", "
    \n", "
  1. The sample space S, \n", "
  2. The probability function P, \n", "
  3. The events given (i.e.,list or unambigiously specify the members of each event), and\n", "
  4. The probability of each of the events. \n", "
\n", "\n", "In some cases, additional information may be required. You may abbreviate or schematize as necessary, as long as the answer is perfectly clear.\n", "\n", "Sometimes it is useful to first write down a \"pre-sample space\" which helps to think about the actual sample space. This is often useful when the literal outcome of the random experiment is non-numeric but the sample space is numeric. You are not required to submit this pre-sample space in your solution, but I encourage you to take this step whenever possible. \n", "\n", "Example: Toss a fair coin (i.e., probably of heads is 0.5) and report the number of heads that appear. Let A = \"one head appears.\" \n", "**Analyze.** \n", "\n", "Solution: The pre-sample space is { T, H }. Then:\n", " \n", " S = { 0, 1 }\n", " P = { 0.5, 0.5 }\n", " A = { 1 }\n", " P(A) = 0.5\n", " \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 1 (Set Theory)\n", "\n", "Do problem 1 from the End of Chapter Problems for Chapter 1 in the textbook. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution\n", "\n", "Write your solution here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 2 (Set Theory)\n", "\n", "Do problem 6 from the End of Chapter Problems for Chapter 1 in the textbook. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 3 \n", "\n", "Do problem 14 from the End of Chapter Problems for Chapter 1 in the textbook. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 4 \n", "\n", "Do problem 15 from the End of Chapter Problems for Chapter 1 in the textbook. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 5 (Analyze a Random Experiment)\n", "\n", "Suppose that a study is being done on all families with 1, 2, or 3 children (all having different ages, i.e., no twins), and let the outcomes be the genders (G = girl and B = boy) of the children in each family in ascending order of their ages (e.g., BG means an older girl and a younger boy). Assume all possible configurations of genders and numbers of children is equally likely (i.e., this will be an equiprobable probability space). Let events A = \"families where the oldest child is a boy\" and B = \"families with exactly two girls and any number of boys.\" **Analyze.** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution: \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 6 (Analyze a Random Experiment)\n", "\n", "Suppose that each time Wayne charges an item to his credit card, he rounds the amount to the nearest dollar in his records (assume that for x dollars, the amount x.50 is rounded to x + 1 dollars). The round-off error is defined as (recorded - actual); the units are dollars, so if Wayne charges $\\$\\$4.25$, he records it as $\\$4$, and the round-off error is $\\$-0.25$, but if he charges $\\$4.75$, the value recorded is $\\$5$ and the round-off error is $\\$0.25$. Assume this is random, so that each time Wayne charges to his card, he performs a random experiment whose outcome is the round-off error. Assume the outcomes are equiprobable. \n", "\n", "Let event A = \"at most 3 cents is rounded off in either direction\" (i.e., | recorded - actual | ≤ 0.03). **Analyze.** (No pre-sample space necessary.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 7\n", "\n", "Suppose we consider the random experiment of randomly choosing a *real number* $x$ in the range $[0..1)$ for example using a spinner as discussed in class. Give the probability of the following events occurring.\n", "\n", " (a) x is larger than 0.29 but smaller than 0.54 (probability problems are often written, unfortunately, in English, so you have to translate, in this case into \"0.29 < x < 0.54\"),\n", "\n", " (b) x is at least 0.29 but at most 0.54 (i.e., 0.29 ≤ x ≤ 0.54),\n", " \n", " (c) the 3rd digit after the decimal point in x is 4 (e.g., 0.98423... or 0.004000... or 0.44444... etc. ),\n", "\n", " (d) x is the decimal representation of the value $2^{-k}$ for $k = 1, 2, 3, \\ldots$. \n", "\n", " (e) x is a rational number (can be expressed as a fraction).\n", "\n", "Hint: Consider the role of Axiom $P_3$ in (d) and (e)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Solution: \n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Problem 8\n", "\n", "Consider the random experiment of flipping a fair coin until a head appears. The result of the random experiment is the number of flips. Let E = \"it takes an even number of flips.\" Give the probability P(E). **Analyze** this experiment. \n", "\n", "Show your reasoning, don't just give the answer. \n", "\n", "Hint: compare the sequence of probabilities in the case of an even number of flips, and the sequence of probabilities in the case of an odd number. There is a simple relationship between them. " ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "#### Solution\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Lab Problems: Generating Random Numbers\n", "\n", "These problems will be discussed in Lab on Friday. " ] }, { "attachments": { "Screen%20Shot%202021-02-05%20at%2012.06.36%20PM.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "### Linear-Congruential Hash Functions\n", "\n", "As you may recall from CS 112, hash functions map key values to locations (buckets) in a hash table: the hash function appears to be spreading the keys uniformly randomly over the locations, but in fact there is nothing random about it, since we can easily repeat the computation to find the key later. This is called pseudo-random behavior: the hash function is not random, but appears to be so unless you know the rule used to compute the hash function. \n", "\n", "The simplest hash functions use the *linear-congruential method* to map a positive integer key $k$ to a slot in the hash table using the following function:\n", "\n", "$$ \\text{hash}(k)\\ =\\ (a \\cdot k + c)\\ \\%\\ m$$\n", "\n", "for suitable parameters $a$, $c$, and $m$. The slots in the hash table would be from $0$ to $m-1$.\n", "\n", "So, for example, for $a=8$, $c=3$, and $m=7$, then the keys 4, 7, 12, 3, and 8 would be mapped as follows:\n", "\n", "\n", "![Screen%20Shot%202021-02-05%20at%2012.06.36%20PM.png](attachment:Screen%20Shot%202021-02-05%20at%2012.06.36%20PM.png)\n", "\n", "### Linear-Congruential Random Number Generators\n", "\n", "The same approach can be used to generate a sequence of pseudo-random numbers, by simply applying the hash function successively to an initial *seed* value. \n", "\n", "Supposing we start with a `seed` value, we can generate a sequence of random numbers by applying the hash function successively to each number in the sequence:\n", "\n", "$$\\begin{aligned}\n", " n_0 &= \\text{hash}(seed) \\\\ \n", " n_1 &= \\text{hash}(n_0) \\\\ \n", " n_2 &= \\text{hash}(n_1) \\\\ \n", " & \\ldots \\\\\n", " n_{k+1} &= \\text{hash}(n_k) \\\\ \\\\ \n", " & \\ldots \\\\\n", " \\end{aligned}$$\n", "\n", "For example, using the values for $a$, $c$, and $m$ as above, and starting with a seed of $0$, we would get\n", "the following sequence:\n", "\n", " seed = 0\n", " hash(0) => 3 <= This is the first pseudo-random value produced\n", " hash(3) => 6\n", " hash(6) => 2\n", " hash(2) => 5\n", " hash(5) => 1\n", " hash(1) => 4\n", " hash(4) => 0 <= It eventually produced the seed, which is a \n", " valid random value \n", "\n", "#### Not for credit (but don't skip!)\n", "\n", "Question 1: What do you think happens if you continue to apply the hash function to this sequence?\n", "\n", "\n", "Question 2: Is it possible to generate more than $m$ different pseudo-random values? Why or why not?\n", "\n", "Question 3: A *full-period generator* is one that generates $m$ different values (note that the seed is considered to be a valid value) before repeating. Is this a full-period generator? \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We say that a number $n$ *divides* $m$ if $m\\over n$ is an integer. For example, 4 divides 16 but does not divide 10. \n", "A *prime number* $q$ is a number which is only divided by 1 and itself; for example 7 is prime but 8 is not (since 2 divides 8). Two numbers $n$ and $m$ are *relatively prime* if the only number that divides both $m$ and $n$ is 1. \n", "\n", "A well-known mathematical result is the following:\n", "\n", "Theorem: A linear-congruential random number generator is full-period if and only if:\n", "\n", "* $m$ and $c$ are relatively prime;\n", "* If $q$ is a prime number that divides $m$, then $q$ divides $a-1$;\n", "* If 4 divides $m$, then 4 divides $a-1$. \n", "\n", "This is a little weird and complicated, and it is best when designing a practical random number generator to use standard values that have been tested and found to be robust under\n", "various statistical tests (such as we will explore below). A good reference with\n", "a table of commonly used parameters may be found here. \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### NOTE: For the rest of this homework, for simplicity, when we say \"random\" we will really mean \"pseudo-random.\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 9: Generating Random Numbers \n", "\n", "\n", "In this problem we will investigate how to use the method just described to implement random number generators for floating-point numbers in the range $[0,1)$ and for integer values in a given range $[lo..hi]$. These will essentially be our own versions of the functions `numpy.random.random()` and `numpy.random.randint(...)`.\n", "\n", "As a first step we will generate numbers in the range $[0 .. m)$ for a large integer $m$, and then modify this sequence to create our two functions. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (A) Generating random Integers in the range $[0..m)$\n", "\n", "The first step is simply to implement the method shown above, providing a seed, and generating the $m$ values (since it is a full-period generator). Complete the stub below and verify that it matches the example shown above. \n", "\n", "NOTE: It is usually a good idea to test your code on a small example before using\n", "the large values which are necessary to get realistic test results. " ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "None\n", "None\n", "None\n", "None\n", "None\n", "None\n", "None\n" ] }, { "data": { "text/plain": [ "51" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = 8 \n", "c = 3 \n", "m = 7 \n", "\n", "# hash function using LC method\n", "def hash(k): \n", " pass # Your code here \n", "\n", "next_random_value = 0 # to declare a variable we have to use a value, so use 0\n", "\n", "# instantiate next_random_value\n", "def my_seed(s):\n", " global next_random_value # note that you have to declare as global to modify it outside the function\n", " next_random_value = s\n", "\n", "def my_random_integer():\n", " global next_random_value\n", " \n", " return next_random_value # Your code here\n", "\n", "# Generate m random values (the last one will be the seed)\n", "\n", "my_seed(0)\n", "\n", "# should match values in example above (the sequence starts with 3 and ends with the seed 0)\n", "\n", "for k in range(m):\n", " print(my_random_integer())\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now try the same thing with a seed of 3, and observe that it generates $m$ values, the first being 6 and the last being the seed 3. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ " Next, print out the first 20 random numbers generated using the parameters which are used by the C language in its random number generator:\n", " \n", " a = 1103515245\n", " c = 12345\n", " m = 2**31 = 2147483648 \n", "\n", "Use a seed of 1.\n", "\n", "**Note:** This is one place where the dynamic list of variables is helpful: if you simply\n", "give definitions for these variables in the next cell, they will be used in\n", "the definition of `hash(...)` which is in a previous cell. We will use these values below, and\n", "repeat them every time. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [], "source": [ "a = 1103515245\n", "c = 12345\n", "m = 2**31 \n", "\n", "# with seed 1, first number is 1103527590\n", "# with seed 1, last number is 1675546029\n", "\n", "# Your code here" ] }, { "attachments": { "Screen%20Shot%202020-01-30%20at%2012.32.05%20AM.png": { "image/png": "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" } }, "cell_type": "markdown", "metadata": {}, "source": [ "### (B) Generating Random Floating-Point Numbers in the range $[0..1)$\n", "We want to write our own version of the function `numpy.random.random()` which we used\n", "in HW 01 (and will use in future homeworks), which essentially simulates the \n", "the \"spinner\" random experiment from lecture, which equiprobably returns a random float in the range $[0,1)$: \n", "\n", "![Screen%20Shot%202020-01-30%20at%2012.32.05%20AM.png](attachment:Screen%20Shot%202020-01-30%20at%2012.32.05%20AM.png)\n", "\n", "\n", "To do this, it is simply necessary to convert integers in the range $[0 .. m)$ returned by my_random_integer() to floating-point numbers in the range $[0..1).$\n", "\n", "
\n", " Again, we are writing our own version of the Numpy function np.random.random() which you used in the first homework. You may NOT use the Numpy Random library; we are learning how it was written! \n", " That is why we added \"my_\" to the names of the functions in this homework. After this homework, we will go back\n", " to use `numpy` functions, but then you will know how they are written!\n", "
\n", "\n", "\n", "Hint: Easily done by division! You won't get all possible floating-point numbers, just\n", "$m$ floats evenly spaced throughout the interval $[0..1)$. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "a = 1103515245\n", "c = 12345\n", "m = 2**31 \n", "\n", "def my_random():\n", " pass # Your code here \n", "\n", "# Run this cell several times and verify that it works as you expect; try it with and\n", "# without the seed\n", "\n", "my_seed(0)\n", "\n", "my_random() # with seed 0, should get 5.748588591814041e-06" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Now test it by printing out 20 random floats in the range [0..1) using a seed of 5.\n", "# Try it with and without the seed, but make sure the seed is uncommented before you\n", "# Run All and submit\n", "\n", "# with seed 5, first number should be 0.5693273963406682\n", "# with seed 5, last number should be 0.7451900173909962\n", "\n", "# Your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (C) Pseudo-random Integers in range [lo..hi)\n", "\n", "Now we will use the `my_random()` function created in (B) to create random integers in a range $[lo..hi)$\n", "as if imitating np.random.randint(lo,hi). Note that lo is an optional argument,\n", "so we want the following behavior, following np.random.randint(...):\n", "
\n",
    "     np.random.randint(10)    #  returns a random value from [0..10)       \n",
    "     np.random.randint(1,7)   #  returns a random value from [1..7)    \n",
    "
\n", "This is a bit tricky, because the first argument is optional, where the second is not.\n", "The best way to do this is to collect the arguments in a list (see the Optional Arguments section right at the beginning of PythonFor237.ipynb for\n", "how to do this) and figure out how many and what\n", "they mean once you call the function. \n", "\n", "Having gotten the optional arguments to work, next we need to figure out how to\n", "create the appropriate values from my_random(). \n", "\n", "\n", "To do this, you will need to take the value returned by my_random() and (in this order):\n", "\n", " - scale $[0..1)$ to $[0..(hi - lo))$ by multiplication\n", " - shift $[0..(hi - lo))$ to $[lo .. hi)$ by addition\n", " - convert to integers using int(...). \n", " \n", "Note that the first two steps are a 1D version of what you did in 2D when you created the circle in Problem 5 in HW 01. \n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[None, None, None, None, None, None, None, None, None, None]\n", "\n", "[None, None, None, None, None, None, None, None, None, None]\n", "\n", "[None, None, None, None, None, None, None, None, None, None]\n", "\n", "[None, None, None, None, None, None, None, None, None, None]\n" ] } ], "source": [ "# Solution\n", "\n", "# my_randint(hi) returns a random integer in the range [0..hi)\n", "# my_randint(lo,hi) returns a random integer in the range [lo..hi)\n", "\n", "def my_randint( *args ): \n", " pass # Your code here \n", " \n", " \n", "# Test itd using a seed of 0\n", "\n", "my_seed(0)\n", "\n", " \n", "print( [ my_randint(10) for k in range(10) ] ) # should get [0, 6, 3, 6, 1, 5, 4, 6, 3, 2]\n", " \n", "print() \n", "\n", "print( [ my_randint(2) for k in range(10) ] ) # should get [0, 1, 0, 0, 1, 1, 1, 1, 0, 1]\n", " \n", "print() \n", "\n", "print( [ my_randint(1,7) for k in range(10) ] ) # should get [4, 2, 5, 5, 6, 2, 3, 5, 5, 2] \n", " \n", "print() \n", "\n", "print( [ my_randint(0,10) for k in range(10) ] ) # should get [0, 7, 0, 5, 2, 5, 5, 3, 1, 6] \n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 10: Testing for Randomness\n", "\n", "In this problem we will try three different tests for whether our functions are behaving\n", "randomly. These are rather informal, since all we will do is manipulate the random\n", "sequence in various ways and verify by inspection that it \"looks random.\"\n", "\n", "Essentially, we will be repeating Problems 1 (B) and 3 from HW 01, but using our own versions of the random number generators. \n", "\n", "For further information on tests of randomness, see this Wikipedia page. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Part (A) The Pair Test.\n", "\n", " Now we will test our function my_random() developed above. For the first test, you must copy your solution to the Problem 1 (B) in HW 01, \n", " and run it with your functions my_seed(0) and my_random(), instead of the numpy functions we used there. You do NOT need to provide an estimate of $\\pi$; all we are interested in is your visual\n", " inspection of the distribution of the points in the unit square. \n", " \n", " I will provide a solution to HW 01 on Saturday, after the late deadline has passed, in case you want to use my solution. \n", "\n", " \n", "Use a seed of 0 and let `num_trials = 5000`. \n", " \n", "Confirm by eye that the points appear to be random. \n", " \n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "a = 1103515245\n", "c = 12345\n", "m = 2**31 \n", "\n", "# Your code here " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### (B) The Frequency Test\n", "\n", "For this part, we would like you to do a frequency test. This is essentially the same as Problem 3 of HW 01 where we determined whether the probability function was equinumerous (that is, all the bins were about the same height). Essentially, what this amounts to is displaying the frequency distribution and examining its shape to verify that it conforms to what you would expect (of course, it will be an approximation of the ideal shape, which\n", "would get more precise as you do more trials). \n", "\n", "There is a subtle problem with this test and its relationship with the period of the random number generator: if you generate exactly as many numbers as in the period of `my_random_integer()`, then by definition the bins will be exactly the same size, since the sequence contains all possible numbers in the range $[0 .. 2^{31})$. (You could verify this by doing $m=2^{31}$ trials if you wish!)\n", "\n", "Another way to think of this is that the sequence is \"more random\" near the beginning than near the end, since near the end\n", "it can only choose numbers in the range $[0..2^{31})$ that have not yet been generated. The last number generated in the period is the seed, and hence not random at all!\n", "\n", "Hence we do not want to generate too much of the entire period to do this test. We will therefore use only $10^6$ numbers, which represent\n", "\n", "$$\\frac{10^6}{2^{31}} \\, =\\, 4.6566128730773926\\text{e-04}$$\n", " \n", "or about 0.046 % of the period. This should be sufficiently random to do the test!\n", "\n", "Todo:\n", "\n", "Generate $10^6$ values using my_randint(100) with a seed of 0. \n", " \n", "Use `show_distribution(...)` from Problem 3 of HW 01 and simply observe that\n", "the bins are approximately the same height, as in HW 01. \n", "\n", "(I will post the solution for this on Saturday, after the late deadline passes). \n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": false }, "outputs": [], "source": [ "# Solution\n", "\n", "# Your code here " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 11: Further Tests of Randomness\n", "\n", "One of the characteristics of random sequences is that if you perform some simple\n", "transformation of the sequence, it should still be random. Various statistical tests of\n", "randomness are based on this idea. In this problem, we will transform the random sequences\n", "we generate using `my_randint(...)` to test for randomness in two ways (I have taken these from here) and test the derived sequences for randomness using the frequency test from the previous problem (which amounts to displaying the distribution of outcomes and examining its shape). \n", "\n", "*The serial test: Generate two random digits using `my_randint(10)` and form a two-digit number from them (e.g., if you generated 8 and 3, then produce 83). Using this method, generate a long sequence of two-digit numbers\n", "and verify it is approximately equiprobable using the frequency test (as in Problem 10 (B)). \n", "\n", "*The gap test: Generate a sequence of 0's and 1's using `my_randint(2)` and find the distances between occurrences of 0's (00 would be a distance of 0, 010 would be a distance of 1, 01110 would be a distance of 3, etc.). \n", "Using this idea, generate a long sequence of such distances, and verify using the frequency test (it will not be equiprobably, see next paragraph). \n", "\n", "How to proceed:\n", " \n", "The serial test is essentially identical to Problem 10 (B) and you should get a very similar result. Just write a function `generate_two_digit_integer()` and use it in place of `my_randint(100)`\n", "\n", "The gap test is essentially a trivial modification of the \"Flip a coin until you get a head\" experiment: 0 = heads, 1 = tails,\n", "and you are counting the number of tails instead of the total number of heads and tails. Write a function `generate_until_0()` which count the number of 1's generated until you get the first 0. \n", "You should get the following distribution:\n", "\n", " S = { 0, 1, 2, 3, ... }\n", " P = { 1/2, 1/4, 1/8, 1/16, ... }" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "# (A) The Serial Test Use a seed of 5 and num_trials = 10**6\n", "\n", "# Your code here" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# (B) The Gap Test Use a seed of 7 and num_trials = 10**6\n", "\n", "# Your code here\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem 12: \n", "\n", "Verify the result you calculated for Analytical Problem 8 above (the \"flip until heads\" experiment returns an even number)\n", "by running $10^6$ trials. The answer should be close to the result obtained by your mathematical analysis. \n", "\n", "You must \n", "\n", "(A) Print out the percentage of the total outcomes which were even (as a float, that is, 33 % would be 0.33), and \n", "\n", "(B) Display the distribution of even and odd outcomes (two bins, very simple!). To produce a nice, informative display, you must label the X-axis with \"even\" and \"odd\" (by resetting\n", "the plt.xticks(...), see the `PythonFor237` notebook in the section on Bar Charts for an example). You will have to\n", "modify the `show_distribution` function to do this, or simply copy the body of the function into the code cell for your solution. \n", "\n", "\n", "\n", "Hints: For (B) you will need to convert your\n", "experimental outcomes to show whether the result was even or odd. The easiest\n", "way is to convert all even outcomes to 0 and all odd outcomes to 1, using\n", "a simple list comprehension. \n", "\n", "To find the percentage of 0's in the list of outcomes, use `Counter(...)`. \n" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "# Solution (A) Use a seed of 2 and num_trials = 10**6\n", "\n", "\n", "# Your code here\n", "\n", "\n", " " ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# Solution for (B) Use outcomes from (A) to draw the distribution\n", "\n", "# Your code here" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" } }, "nbformat": 4, "nbformat_minor": 2 }